#!D:/CODE/python
# -*- coding: utf-8 -*-
# @Time : 2020/6/11 15:47
# @Author : Alexdong
# @Site : 
# @File : Dataframe.py
# @Software: PyCharm
# Functional description:

import numpy as np
import pandas as pd

t = pd.DataFrame(np.arange(12).reshape(3, 4))

print(t)

# 显示pd对象前五行
# t.head()

t.info()  # 展示df的信息，多少行，多少列等等


# Dataframe中排序的方法
df = pd.read_csv("./dogname.csv")
df = df.sort_values(by="count_animalName")
print(df)

# Dataframe的切片
# - 方括号写数组，表示取行，对行进行操作
# - 写字符串，表示的取列索引，对列进行操作
print(type(df["count_animalName"]))  # 这时，得到的一列的类型就是Series了。

# df.loc()通过标签索引行数据
# df.iloc()通过为止获取行数据


# 布尔索引
print(df[(800<df["count_animalName"]) & (df["count_animalName"]< 1000)])


# 处理Nan
# 判断NAN;
pd.isnull(df)
# 处理方法1:删除Nan所在的行或列
df.dropna(axis=0, how="any/all", inplace=True)

# 处理方法2：填充数据
df.fillna(100)  # 填充100
df.fillna(t.mean())  # 均值填充
df['age'].fillna(df["age"].mean())  # 某一列 均值填充
